//////////////////////elaborado por: Susana Taquichiri////////////////////////
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Boa.AIT.AccesoDatos.Entidades;
using Boa.AIT.Negocios;
using Boa.AIT.Negocios.Servicios;
using Didsoft.Mvc.DataModel;
using Didsoft.Mvc.Controller;
using Boa.AIT.Reportes.Raiz;
using Boa.AIT.Reportes.Negocios;

namespace Boa.AIT.Web.Controllers
{
    public class AIT_MantenimientoPreventivoController : BaseController<AIT_MantenimientoPreventivo>
    {
	    #region interface servicios AIT_MantenimientoPreventivo

		private IAIT_MantenimientoPreventivoNegociosServicio servicio = null;

		#endregion
		
		
		#region constructor and overridable

        public AIT_MantenimientoPreventivoController()
        {
		    servicio = new AIT_MantenimientoPreventivoNegocios();
            base.SetDataModelService(servicio);            
        }
		        

		#region overrided methods
        public override void PreCreate(dynamic ViewBag)
        {
             ViewBag.AIT_AccionesMantenimientos=new AIT_AccionesMantenimientoNegocios().ObtenerTodas();
             ViewBag.AIT_AsignaEmpleados=new AIT_AsignaEmpleadoNegocios().ObtenerTodas();

        }
        public override void PreEdit(dynamic ViewBag)
        {
             ViewBag.AIT_AccionesMantenimientos=new AIT_AccionesMantenimientoNegocios().ObtenerTodas();
             ViewBag.AIT_AsignaEmpleados=new AIT_AsignaEmpleadoNegocios().ObtenerTodas();

        }
        #endregion


		#endregion

		#region	actions

		[HttpGet]
		public override ActionResult Index()
        {
            return RedirectToAction("FilterList");
        }

		#endregion

        #region MantenimientoFechaActual
        public ActionResult MantenimientoFechaActual()
        {
            return View();
        }

        [HttpPost]
        public ActionResult MantenimientoFechaActual(FormCollection formulario)
        {
            ReportParametersDictionary dic = new ReportParametersDictionary();
            dic.Add(Parametros.Renderizador, Renderizadores.RptMantenimientoFechaActual);
            return Redirect(DirectorReporte.ConstruirURL(dic));
        }
        /// <summary>
        /// ESTO DISPARA DATOS PARA EL JTABLE
        /// </summary>
        /// <param name="filter"></param>
        /// <param name="jtStartIndex"></param>
        /// <param name="jtPageSize"></param>
        /// <param name="jtSorting"></param>
        /// <returns></returns>
        [HttpPost]
        public JsonResult JSONPreviewMantenimientoFechaActual(string filter = "", int jtStartIndex = 0, int jtPageSize = 0, string jtSorting = null)
        {
            try
            {
                var servicio = new MantenimientoFechaActualNegocios();
                var searchedItems = servicio.ListaMantenimientoFechaActual();
                var items = searchedItems.Skip(jtStartIndex).Take(jtPageSize).ToList();
                return Json(new { Result = "OK", Records = items, TotalRecordCount = searchedItems.Count() });
            }
            catch (Exception ex)
            {
                return Json(new { Result = "ERROR", Message = ex.Message });
            }
        }
        #endregion


    }
}

